perm filename NTBOX.OLD[CMS,LCS] blob sn#396816 filedate 1978-11-20 generic text, type T, neo UTF8
00100		TITLE TBOX
00200		.INSERT MAC748.FAI[CMS,LCS]
00300	
00400	   ;Ram bank 0 registers.
00500		K ← 0
00600		I ← 1
00700		N ← 2
00800		T ← 3	;Timer overflow count.
00900		CMD ← 4	;TBOX and JS led bits.
01000		CMD1 ← 5	;Alfa led message index.
01100		OFFL ← 6	;Alfa off timer low.
01200		OFFH ← 7	;High.
01300	
01400	   ;Ram10-27 = Stack.
01500	   ;Ram bank 1 registers.
01600		P ← 30	;Pots pointer.
01700		O ← 31	;Offset pointer.
01800		X ← 32
01900		Y ← 33
02000		Z ← 34
02100		SW0 ← 35	;TBOX switch bits.
02200		SW1 ← 36
02300		SW2 ← 37
02400	
02500	   ;Standard ram.
02600		SPD ← 40	;Speed pot.
02700		P0 ← 41	;Joy stick pots.
02800		P1 ← 42
02900		P2 ← 43
03000		P3 ← 44
03100		JW0 ← 45	;Joy stick switch channels.
03200		JW1 ← 46
03300		JW2 ← 47
03400		JW3 ← 50
03500	
03600		OSPD ← 51	;Old speed pot.
03700		OP0 ← 52	;Joy stick offsets.
03800		OP1 ← 53
03900		OP2 ← 54
04000		OP3 ← 55
04100		OJSW ← 56	;Old joy stick switch bits.
04200		OCMD ← 57	;Old led bits.
04300		OCMD1 ← 60	;Old alfa led index.
04400	
04500		JSC ← 61	;Joy stick not calib. flag.
04600	
04700		XTAL ← =6000000	;In hertz.
04800		BRATE ← =9600	;Baud rate
04900	
05000	;TBIT ← ((=10000000/BRATE)/((=10000000/XTAL)*=15))/2
05100		TBIT ← 21
05200	
05300		TT ← 1	;Triple throw switch port.
05400		S ← 2	;Scan and A/D port.
05500		PBL ← 4	;Push button port low.
05600		PBH ← 5	;Push button port high.
05700		CEW ← 6	;Alfa led chip enables and write port.
05800		JS ← 7	;Joy stick, CU, and led latch port.
     

00100	   ;Reset and interrupt vectors.
00200		JMP	RST	;RESET VECTOR
00300		0
00400		DISXI		;EXTERNAL INTERRUPT VECTOR
00500		NOP
00600		NOP
00700		NOP
00800		DISTI		;TIMER INT VECTOR
00900		RETR
01000	
01100	   ;Power on reset.
01200	RST:	CLRA	;0 For clear cursor memory.
01300		OUTB	;Latch bus output.
01400		MOVI	377	;SETUP INPUT PORTS
01500		OUTP	TT	;SPTT switches.
01600		MOVI	77	;P4-7, SCAN, STRT, ALE.
01700		OUTP	S
01800	   ;Setup PBSW ports for input.
01900		MOVAX	PBL	;PBSW low.
02000		MOVAX	PBH	;PBSW high.
02100	
02200	   ;Clear cursor memory.
02300		MOVI	70	;7/2,,10.
02400		MOVAX	CEW	;Enable all alfa leds.
02500		ROL	;A ← 160.
02600		MOVAX	JS	;Clear JS and CU.
02700	   ;Write all alfa leds.
02800		SWAP	;A ← 7.
02900		ANPA	CEW	;NOT W
03000		CPLA
03100		ORPA	CEW	;W
03200	
03300		SWAP	;A ← 10,,17.
03400		ORPA	CEW	;Disable all alfa leds.
03500		SWAP	;A0-3 ← 10.
03600		ORPA	JS	;NOT CU.
03700	
03800		CALL	CLED	;Clear leds.
03900		CALL	CALED	;Clear alfa leds.
04000		JINT	CLRJSL	;Check if joy stick.
04100		JMP	STIMER
04200	CLRJSL:	MOVRI	N,4	;Joy stick not cal. bit.
04300		CALL	CJLED	;Init joy stick leds.
04400	STIMER:	MOVAT		;Setup timer.
04500		STRTT
04600	
04700		CPLF1	;Set alfa leds off.
04800		MOVRI	K,JSC
04900		MOVMI	K,4	;Set joy stick not calib.
05000		
05100		JMP	SETFLG
05200	
05300	; Set scan flag and timer
05400	UPFLG:	DJNZ	T,CKIN
05500	SETFLG:	MOVRI	T,4	;4 = 82 ms.
05600		CLRF0		;Set scan flag
05700	
05800		JF1S	CKIN	;Check if alfa off.
05900		DJNZ	OFFL,CKIN	;OFFW ← OFFW - 1.
06000		DJNZ	OFFH,CKIN
06100		CPLF1	;Set alfa led off flag.
     

00100	;INPUT WAIT
00200	   OFFSET ← TBIT/3	;Center delay?
00300	INWAI:	JTF	UPFLG	;Check if timer time out.
00400	
00500	CKIN:	JT0H	INWAI	;Check for start bit.
00600	
00700		MOVRI	K,OFFSET-4	;Center - Itime.
00800	CENTER:	DJNZ	K,CENTER	;Wait for center of bit
00900		JT0H	INWAI	;Check if valid start bit
01000	
01100	; Byte input routine
01200		MOVRI	N,11	;# of bits -1
01300	
01400	ILOOP:	MOVRI	K,TBIT-5;tBIT - tI
01500	WAI:	DJNZ	K,WAI
01600		CLRC
01700		JT0H	BITON
01800		RORC
01900		JMP	BITOFF
02000	BITON:	CPLC
02100		RORC
02200		NOP
02300	
02400	BITOFF:	DJNZ	N,ILOOP
02500	
02600		ROLC		;Shift out stop bit
02700		JCC	INWAI	;Check for good stop bit.
02800	
02900		JBS	7,BYTE1	;Check if first or second byte.
03000	
03100		MOVAR	CMD	;Save first input byte.
03200		JMP	INWAI	;Get next byte.
03300	
03400	BYTE1:	MOVAR	CMD1	;Save second byte.
03500	
03600		CLRA	;SPD default.
03700		JT1H	ADZRO	;Speed off.
03800	
03900	   ;A/DCHAN ← SPEED.
04000		OUTB	;Latch zero on bus.
04100		ORPI	S,200	;ALE.
04200		ANPI	S,177	;NOT ALE.
04300	
04400		CALL	CONVRT	;Wait for speed.
04500	
04600		JNZ	ADZRO	;Check if on and zero.
04700		INCA	;A ← 1.
04800	
04900	ADZRO:	MOVRI	K,SPD	;Save speed pot value.
05000		MOVAM	K
     

00100		CALL	CLED	;Clear cal. and mode leds.
00200		MOVRA	CMD	;Get mode code.
00300		RORC	;Get cal. bit.
00400		ANI	7	;Zero data input to LS259.
00500		CALL	WLED	;Write mode led.
00600	
00700		JCC	CKJOY	;No calib. bit.
00800		CLRA	;Led 0.
00900		CALL	WLED	;Write cal. led.
01000	
01100	CKJOY:	JINT	GPOTS	;Check for joy stick.
01200		MOVRI	K,JSC
01300		MOVMI	K,4	;JSC ← 1.
01400		JMP	CKSCAN
01500	
01600	GPOTS:	MOVRA	CMD	;Setup JS led bits.
01700		SWAP	;Get JS led bits.
01800		ANI	3	;2 JS led bits.
01900		MOVRI	K,JSC
02000		ORM	K	;A ← A .OR. JSC.
02100		CALL	WJLED	;Write JS led bits.
02200	
02300	;A/D convert routines.
02400		MOVI	1	;Chanel 1.
02500		OUTB	;Latch bus output.
02600		ORPI	S,200	;ALE
02700		ANPI	S,177	;NOT ALE.
02800	
02900		MOVI	2	;CLR bit.
03000		ORPA	JS	;CLR.
03100		CPLA
03200		ANPA	JS	;NOT CLR.
03300		MOVRI	P,P0	;JS pot index.
03400		MOVRI	N,10	;# of pots + switch channels.
03500	
03600	ADLOOP:	CALL	CONVRT	;Wait for A/D.
03700		MOVAM	P	;Ram(p) ← Pots&sws(p).
03800	
03900		MOVI	1
04000		ORPA	JS	;CNT
04100		CPLA
04200		ANPA	JS	;NOT CNT.
04300	
04400		INCR	P	;Next pot.
04500		DJNZ	N,ADLOOP	;Next channel.
04600	
04700	;Check for scan flag.
04800	CKSCAN:	JF0S	CKJSC	;Scan flag.
04900	
05000		JMP	SCAN	;Scan switches.
     

00100	CKJSC:	MOVRI	K,JSC
00200		MOVMA	K	;A ← JSC.
00300		JBS	2,ZPOTS	;Check if JS not calib.
00400	
00500		MOVRI	P,P0	;Pots pointer.
00600		MOVRI	O,OP0	;Offset pointer.
00700		MOVRI	N,4	;# of pots.
00800	
00900	OFFSL:	MOVMA	P	;Get pot.
01000		CPLA
01100		ADDM	O	;Subtract offset.
01200		CPLA
01300		MOVAM	P	;Save pot.
01400	
01500		INCR	P
01600		INCR	O
01700		DJNZ	N,OFFSL
01800		JMP	CKACT
01900	
02000	ZPOTS:	CLRA
02100		MOVRI	P,P0
02200		MOVRI	N,4	;# of pots.
02300	ZPL:	MOVAM	P	;Ram(Pots) ← 0.
02400		INCR	P
02500		DJNZ	N,ZPL
02600	
02700	;Activity check.
02800	CKACT:	MOVRI	K,OCMD
02900		MOVMA	K
03000		XORR	CMD	;A ← CMD .XOR. OCMD.
03100		JNZ	ACT
03200		MOVRI	K,OCMD1	;Old alfa index.
03300		MOVMA	K
03400		XORR	CMD1
03500		JNZ	ACT
03600	
03700		SRB1	;Select ram bank 1.
03800		MOVRA	SW0
03900		JNZ	RACT
04000		MOVRA	SW1
04100		JNZ	RACT
04200		MOVRA	SW2
04300		ANI	77	;Mask out JS and P/O bits.
04400		JNZ	RACT
04500	
04600		MOVRI	P,SPD	;Now pot index.
04700		MOVRI	O,OSPD	;Old pot index.
04800		MOVMA	P	;Check speed.
04900		XORM	O
05000		JZ	CKJP
05100	
05200	RACT:	SRB0	;Select ram bank 0.
05300	ACT:	JMP	ACTIVE
     

00100		NOP ↔ NOP	;For page boundry.
00200	CKJP:	MOVRI	N,4
00300	JSZCK:	INCR	P
00400		MOVMA	P
00500		JNZ	RACT	;Check if JS pots are zero.
00600		DJNZ	N,JSZCK
00700	
00800		SRB0	;Select ram bank 0.
00900		CLRA	;Blank message index.
01000		JF1S	ADPY	;Check if alfa off.
01100		JMP	OBITS	;Not active.
01200	
01300	RSTRAM:	SRB0	;Select ram bank 0.
01400	ACTIVE:	MOVRA	CMD	;OLD ← NEW.
01500		MOVRI	K,OCMD
01600		MOVAM	K	;OCMD.
01700		MOVRA	CMD1
01800		INCR	K
01900		MOVAM	K	;OCMD1.
02000	
02100		MOVRI	P,SPD
02200		MOVRI	O,OSPD
02300		MOVMA	P	;A ← SPD.
02400		MOVAM	O	;OSPD ← A.
02500	
02600		CLRF1	;Alfa led off flag ← 0.
02700		MOVRI	OFFH,10	;OFFW ← tOWAIT.
02800	
02900		MOVRA	CMD1	;Update alfa leds.
03000		SWAP	;Shift etc.
03100		ROR	;A ← (CMD1⊗4)+4.
03200		ANI	360	;For 16 messages.
03300	ADPY:	CALL	OALFA	;Output message.
03400	
03500	OBITS:	MOVRI	I,SW0	;Point to out bytes.
03600		MOVRI	CMD,10	;# of output bytes.
03700	
03800	OUTL:	MOVMA	I	;Get output byte.
03900	; Output Acc. to SI/O line
04000		MOVRI	K,11	;# of bits -1
04100		CLRC
04200		ROLC		;Start bit
04300	OLOOP:	OUTP	TT	;Output bit
04400		RORC
04500		MOVRI	N,TBIT-3	;TBIT - Itime.
04600	
04700	OWAIT:	DJNZ	N,OWAIT
04800		DJNZ	K,OLOOP
04900	
05000		ORPI	TT,377	;Stop bit.
05100		MOVRI	N,TBIT-6	;TBIT - Itime.
05200	SWAIT:	DJNZ	N,SWAIT
05300		NOP
05400	
05500		INCR	I
05600		DJNZ	CMD,OUTL
05700	
05800		JMP	INWAI	;Loop back to input wait.
     

00100	WLED:	OUTB	;Latch A on bus.
00200		MOVI	7	;NOT led E bit.
00300		ANPA	JS	;NOT E.
00400		CPLA
00500		ORPA	JS	;E.
00600	
00700		RET
00800	
00900	;Clear leds
01000	CLED:	MOVRI	N,370
01100		MOVRA	N	;Setup regs.
01200	CLRL:	CALL	WLED	;Clear led loop.
01300		INCR	N	;Next led.
01400		MOVRA	N
01500		JNZ	CLRL
01600	
01700		RET
01800	
01900	;Convert channel and wait.
02000	CONVRT:	ORPI	S,100	;STRT.
02100		ANPI	S,277	;NOT STRT.
02200	
02300		MOVI	=13	;?
02400	CONL:	DECA	;Convert wait.
02500		JNZ	CONL
02600		MOVXMA	K	;Get A/D output.
02700		MOVXMA	K	;Twice for bus unlatch.
02800		OUTB	;Latch bus for output.
02900		RET
03000	
03100	;Alfa led output routines.
03200	CALED:	MOVI	4	;Blank string index.
03300	
03400	OALFA:	MOVAR	I	;Save string index.
03500		MOVI	376	;NOT CE0.
03600	
03700	CENBL:	MOVRI	N,4	;# of chrs in I.C.
03800		MOVAR	K	;Save CE.
03900		MOVAX	CEW	;NOT CE.
04000	
04100	CHRL:	MOVRA	I
04200		MOVP3	;A ← String(chr).
04300		OUTB	;Latch bus output.
04400	
04500		MOVI	367
04600		ANPA	CEW	;NOT W.
04700		CPLA
04800		ORPA	CEW	;W
04900	
05000		INCR	I	;CHR ← CHR+1.
05100		DJNZ	N,CHRL
05200	
05300		MOVRA	K
05400		ROL	;Next CE.
05500		JBS	3,CENBL
05600	
05700		ORPA	CEW	;CE.
05800	
05900		RET
06000	
     

00100	WJLED:	MOVAR	N	;Save JS led bits.
00200	CJLED:	MOVI	22	;CNT,,CLR.
00300		ORPA	JS	;CLR.
00400		CPLA
00500		ANPA	JS	;NOT CLR.
00600		SWAP	;A ← 336.
00700	
00800		INCR	N	;Fix for latch.
00900		JMP	CKZRO
01000	
01100	CJL:	CPLA	;A ← 1.
01200		ORPA	JS	;CNT
01300		CPLA
01400		ANPA	JS	;NOT CNT.
01500	CKZRO:	DJNZ	N,CJL
01600	
01700		MOVI	4
01800		ORPA	JS	;LAT.
01900		CPLA
02000		ANPA	JS	;NOT LAT.
02100	
02200		RET
     

00100	; Bit spreading table
00200	   LOC 1000	;1000 = Start of page two.
00300		125 ↔ 124 ↔ 121 ↔ 120 ↔ 105 ↔ 104 ↔ 101 ↔ 100
00400		 25 ↔  24 ↔  21 ↔  20 ↔   5 ↔   4 ↔   1 ↔   0
00500	   SBITS ← 60	;Scan bits.
00600	   ROW0 ← 357	;Scan row 0.
00700	   ROW1 ← 337	;Scan row 1.
00800	
00900	SCAN:	SRB1	;Select ram bank 1.
01000		CPLF0		;Reset scan flag.
01100		ORPI	S,SBITS	;Turn off rows
01200		ANPI	S,ROW0	;Enable row 0.
01300		INP	TT	;Scan row 0
01400		MOVAR	SW0	;Save it
01500		ANI	17	;Get low nibble
01600		MOVPD		;Get bits from spread table
01700		XCHR	SW0
01800		SWAP		;Swap high low nibbles
01900		ANI	17	;Get high nibble 
02000		MOVPD
02100		MOVAR	SW1
02200	
02300		ORPI	S,SBITS	;Turn off row 0.
02400		ANPI	S,ROW1	;Enable row 1.
02500		INP	TT	;Scan row 1
02600		ORPI	S,SBITS	;Disable scan.
02700		MOVAR	SW2	;Save row 1
02800		ANI	17	;Low nibble
02900		MOVPD
03000		ROL		;Shift + bits
03100		ORR	SW0	;Or into - bits
03200		ANI	374	;Clear teach and off bits.
03300		MOVAR	SW0
03400		MOVRA	SW2	;Get row 1 again
03500		SWAP
03600		ANI	17
03700		MOVPD
03800		ROL
03900		ORR	SW1
04000		MOVAR	SW1
04100	
04200		MOVXA	PBL	;Get push buttons.
04300		MOVAR	SW2	;Save low nibble.
04400		MOVXA	PBH
04500		SWAP	;High nibble.
04600		ORR	SW2
04700	
04800		CPLA
04900		MOVAR	SW2
05000		ANI	77	;Zero JS and P/O bits.
05100		XCHR	SW2
05200		ROLC		;Shift & swap teach & off bits
05300		ROL
05400		ROLC
05500		ANI	3
05600		ORR	SW0
05700		MOVAR	SW0
05800	
05900		JINT	GETJSW	;Check if joy stick.
06000		SRB0	;Select ram bank 0.
06100		JMP	ZPOTS	;No joy stick.
     

00100	GETJSW:	MOVRI	K,JW1
00200		MOVMA	K	;A ← P/O.
00300		ANI	100	;Get P/O bit.
00400		ORR	SW2
00500		MOVAR	SW2	;SW2 ← P/O .OR. PBSWs.
00600		MOVRI	K,JW3
00700		MOVMA	K	;Joy stick T/JS/C bits.
00800		ANI	300
00900		JZ	SETOFF	;Calib. joy stick.
01000	
01100		JBS	6,SETJT
01200		MOVI	100
01300	SETJT:	XORI	300	;Complement J/T bit.
01400		ORR	SW2	;OR into SW2.
01500		MOVAR	SW2
01600	
01700		JBS	7,GTOOL	;Check for JS mode.
01800		SRB0	;Select ram bank 0.
01900		JMP	CKJSC
02000	
02100	GTOOL:	MOVRI	K,JW0	;Check JS switch bits.
02200		MOVMA	K	;Get JS teach switch.
02300		ROLC
02400		MOVRA	SW0
02500		ROR
02600		ROLC	;Shift teach bit into SW0.
02700		MOVAR	SW0
02800	
02900		MOVRI	K,JW2
03000		MOVMA	K	;Get JS tool bits.
03100		ANI	300
03200		JNZ	TPLUS	;Check for T-.
03300	
03400		MOVI	100	;T- bit.
03500	STOOL:	XCHR	SW1
03600		ANI	77	;Zero TBOX tool bits.
03700		ORR	SW1	;SW1 ← SW1 .OR. JSTOOLBITS.
03800		MOVAR	SW1
03900		SRB0	;Select ram bank 0.
04000		JMP	CKJSC
04100	
04200	TPLUS:	JBS	6,SETTP	;Check for no tool bits.
04300		CLRA
04400	SETTP:	ANI	200
04500		JMP	STOOL	;OR Tbits into SW1.
04600	
04700	SETOFF:	MOVRI	P,P0	;Pots pointer.
04800		MOVRI	O,OP0	;Offset pointer.
04900		MOVRI	N,4	;# of pots.
05000	SETL:	MOVMA	P	;A ← POT(P).
05100		MOVAM	O	;OFFSET(O) ← A.
05200		INCR	P
05300		INCR	O
05400		DJNZ	N,SETL
05500	
05600		MOVRI	K,JSC
05700		MOVMI	K,0	;JSC ← 0.
05800		MOVI	200
05900		ORR	SW2	;Set JS/T bit.
06000		MOVAR	SW2
06100		JMP	RSTRAM
     

00100	;Alfa led message table.
00200	   LOC 1400	;Start of page three.
00300	
00400	(" "∧77)∨300 ↔ (" "∧77)∨200 ↔ (" "∧77)∨100
00500	" "∧77 ↔ (" "∧77)∨300 ↔ (" "∧77)∨200
00600	(" "∧77)∨100 ↔ " "∧77 ↔ (" "∧77)∨300
00700	(" "∧77)∨200 ↔ (" "∧77)∨100 ↔ " "∧77
00800	0 ↔ 0 ↔ 0 ↔ 0
00900	
01000	("L"∧77)∨300 ↔ ("I"∧77)∨200 ↔ ("M"∧77)∨100
01100	"I"∧77 ↔ ("T"∧77)∨300 ↔ (" "∧77)∨200
01200	("S"∧77)∨100 ↔ "T"∧77 ↔ ("O"∧77)∨300
01300	("P"∧77)∨200 ↔ (" "∧77)∨100 ↔ "1"∧77
01400	0 ↔ 0 ↔ 0 ↔ 0
01500	
01600	("L"∧77)∨300 ↔ ("I"∧77)∨200 ↔ ("M"∧77)∨100
01700	"I"∧77 ↔ ("T"∧77)∨300 ↔ (" "∧77)∨200
01800	("S"∧77)∨100 ↔ "T"∧77 ↔ ("O"∧77)∨300
01900	("P"∧77)∨200 ↔ (" "∧77)∨100 ↔ "2"∧77
02000	0 ↔ 0 ↔ 0 ↔ 0
02100	
02200	("L"∧77)∨300 ↔ ("I"∧77)∨200 ↔ ("M"∧77)∨100
02300	"I"∧77 ↔ ("T"∧77)∨300 ↔ (" "∧77)∨200
02400	("S"∧77)∨100 ↔ "T"∧77 ↔ ("O"∧77)∨300
02500	("P"∧77)∨200 ↔ (" "∧77)∨100 ↔ "3"∧77
02600	0 ↔ 0 ↔ 0 ↔ 0
02700	
02800	("L"∧77)∨300 ↔ ("I"∧77)∨200 ↔ ("M"∧77)∨100
02900	"I"∧77 ↔ ("T"∧77)∨300 ↔ (" "∧77)∨200
03000	("S"∧77)∨100 ↔ "T"∧77 ↔ ("O"∧77)∨300
03100	("P"∧77)∨200 ↔ (" "∧77)∨100 ↔ "4"∧77
03200	0 ↔ 0 ↔ 0 ↔ 0
03300	
03400	("L"∧77)∨300 ↔ ("I"∧77)∨200 ↔ ("M"∧77)∨100
03500	"I"∧77 ↔ ("T"∧77)∨300 ↔ (" "∧77)∨200
03600	("S"∧77)∨100 ↔ "T"∧77 ↔ ("O"∧77)∨300
03700	("P"∧77)∨200 ↔ (" "∧77)∨100 ↔ "5"∧77
03800	0 ↔ 0 ↔ 0 ↔ 0
03900	
04000	("L"∧77)∨300 ↔ ("I"∧77)∨200 ↔ ("M"∧77)∨100
04100	"I"∧77 ↔ ("T"∧77)∨300 ↔ (" "∧77)∨200
04200	("S"∧77)∨100 ↔ "T"∧77 ↔ ("O"∧77)∨300
04300	("P"∧77)∨200 ↔ (" "∧77)∨100 ↔ "6"∧77
04400	0 ↔ 0 ↔ 0 ↔ 0
04500	
04600	("L"∧77)∨300 ↔ ("I"∧77)∨200 ↔ ("M"∧77)∨100
04700	"I"∧77 ↔ ("T"∧77)∨300 ↔ (" "∧77)∨200
04800	("S"∧77)∨100 ↔ "T"∧77 ↔ ("O"∧77)∨300
04900	("P"∧77)∨200 ↔ (" "∧77)∨100 ↔ "7"∧77
05000	0 ↔ 0 ↔ 0 ↔ 0
     

00100	("T"∧77)∨300 ↔ ("O"∧77)∨200 ↔ ("O"∧77)∨100
00200	" "∧77 ↔ ("C"∧77)∨300 ↔ ("L"∧77)∨200
00300	("O"∧77)∨100 ↔ "S"∧77 ↔ ("E"∧77)∨300
00400	(" "∧77)∨200 ↔ (" "∧77)∨100 ↔ " "∧77
00500	0 ↔ 0 ↔ 0 ↔ 0
00600	
00700	("T"∧77)∨300 ↔ ("O"∧77)∨200 ↔ ("O"∧77)∨100
00800	" "∧77 ↔ ("F"∧77)∨300 ↔ ("A"∧77)∨200
00900	("R"∧77)∨100 ↔ " "∧77 ↔ (" "∧77)∨300
01000	(" "∧77)∨200 ↔ (" "∧77)∨100 ↔ " "∧77
01100	0 ↔ 0 ↔ 0 ↔ 0
01200	
01300	("T"∧77)∨300 ↔ ("E"∧77)∨200 ↔ ("A"∧77)∨100
01400	"C"∧77 ↔ ("H"∧77)∨300 ↔ (" "∧77)∨200
01500	("M"∧77)∨100 ↔ "O"∧77 ↔ ("D"∧77)∨300
01600	("E"∧77)∨200 ↔ (" "∧77)∨100 ↔ " "∧77
01700	0 ↔ 0 ↔ 0 ↔ 0
01800	
01900	("M"∧77)∨300 ↔ ("A"∧77)∨200 ↔ ("N"∧77)∨100
02000	"U"∧77 ↔ ("A"∧77)∨300 ↔ ("L"∧77)∨200
02100	(" "∧77)∨100 ↔ "M"∧77 ↔ ("O"∧77)∨300
02200	("D"∧77)∨200 ↔ ("E"∧77)∨100 ↔ " "∧77
02300	0 ↔ 0 ↔ 0 ↔ 0
02400	
02500	("N"∧77)∨300 ↔ ("O"∧77)∨200 ↔ (" "∧77)∨100
02600	"H"∧77 ↔ ("I"∧77)∨300 ↔ ("G"∧77)∨200
02700	("H"∧77)∨100 ↔ " "∧77 ↔ ("P"∧77)∨300
02800	("W"∧77)∨200 ↔ ("R"∧77)∨100 ↔ " "∧77
02900	0 ↔ 0 ↔ 0 ↔ 0
03000	
03100	("P"∧77)∨300 ↔ ("R"∧77)∨200 ↔ ("O"∧77)∨100
03200	"G"∧77 ↔ (" "∧77)∨300 ↔ ("R"∧77)∨200
03300	("U"∧77)∨100 ↔ "N"∧77 ↔ ("N"∧77)∨300
03400	("I"∧77)∨200 ↔ ("N"∧77)∨100 ↔ "G"∧77
03500	0 ↔ 0 ↔ 0 ↔ 0
03600	
03700	("R"∧77)∨300 ↔ ("U"∧77)∨200 ↔ ("N"∧77)∨100
03800	" "∧77 ↔ ("H"∧77)∨300 ↔ ("O"∧77)∨200
03900	("L"∧77)∨100 ↔ "D"∧77 ↔ (" "∧77)∨300
04000	(" "∧77)∨200 ↔ (" "∧77)∨100 ↔ " "∧77
04100	0 ↔ 0 ↔ 0 ↔ 0
04200	
04300	("F"∧77)∨300 ↔ ("A"∧77)∨200 ↔ ("T"∧77)∨100
04400	"A"∧77 ↔ ("L"∧77)∨300 ↔ (" "∧77)∨200
04500	("E"∧77)∨100 ↔ "R"∧77 ↔ ("R"∧77)∨300
04600	("O"∧77)∨200 ↔ ("R"∧77)∨100 ↔ " "∧77
04700	0 ↔ 0 ↔ 0 ↔ 0
04800	
04900	   LOC 2272
05000		0	;This is for a block of zeros
05100	END